/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */


#include QMK_KEYBOARD_H

// Defines names for use in layer keycodes and the keymap
enum layer_names {
    _BASE,
    _FN,
};


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Base */
    [_BASE] = LAYOUT_all(
      KC_GRAVE,     KC_1,     KC_2,     KC_3,      KC_4,     KC_5,     KC_6,     KC_7,       KC_8,      KC_9,        KC_0,    KC_MINUS,    KC_EQUAL,    KC_BSPC,
        KC_TAB,     KC_Q,     KC_W,     KC_E,      KC_R,     KC_T,     KC_Y,     KC_U,       KC_I,      KC_O,        KC_P,     KC_LBRC,     KC_RBRC,    KC_BSLS,
       KC_CAPS,     KC_A,     KC_S,     KC_D,      KC_F,     KC_G,     KC_H,     KC_J,       KC_K,      KC_L,     KC_SCLN,     KC_QUOT,                  KC_ENT,
       KC_LSFT,     KC_Z,     KC_X,     KC_C,      KC_V,     KC_B,     KC_N,     KC_M,   KC_COMM ,    KC_DOT,    KC_SLASH,                  KC_RSFT,
       KC_LCTL,  KC_LWIN,  KC_LALT,              KC_SPC,   KC_SPC,   KC_SPC, 	           KC_SPC,   KC_RALT,      KC_APP,     KC_RCTL,                   MO(1)
    ),
    /* Fn+ */
        [_FN] = LAYOUT_all(
        KC_ESC,    KC_F1,    KC_F2,    KC_F3,     KC_F4,    KC_F5,    KC_F6,    KC_F7,      KC_F8,     KC_F9,      KC_F10,      KC_F11,      KC_F12,    KC_PSCR,
       RM_TOGG,  RM_VALD,  RM_VALU,    KC_NO,     KC_NO,    KC_NO,    KC_NO,    KC_NO,      KC_NO,     KC_NO,       KC_NO,     KC_VOLD,     KC_VOLU,    KC_MUTE,
       RM_NEXT,  RGB_M_P,  RGB_M_B,  RGB_M_R,  RGB_M_SW,    KC_NO,    KC_NO,    KC_NO,      KC_NO,     KC_NO,     KC_MPRV,     KC_MNXT,                 KC_MPLY,
       KC_LSFT,    KC_NO,    KC_NO,    KC_NO,     KC_NO,    KC_NO,    KC_NO,    KC_NO,      KC_NO,     KC_UP,       KC_UP,                   KC_RSFT,
       KC_CALC,  KC_MAIL,    KC_NO,              KC_SPC,   KC_SPC,    KC_SPC, 	          KC_LEFT,   KC_LEFT,     KC_DOWN,     KC_RGHT,                    KC_NO
    ),

};


